┼VERY ONE OF THE MEMORY LOCATIONS, CALLED "BYTES", CAN CONTAIN ANY NUMBER FROM ZERO TO 255, BUT ACTUALLY EVERY ONE OF THE BYTES IS COMPOSED OF 8 SWITCHES, CALLED "BITS" OR "FLAGS" THAT ARE COUPLED TOGETHER, WITH EACH OF THESE BITS HAVING A VALUE ATTACHED TO THEM; THESE VALUES ARE (POWERS OF 2) 1,2,4,8,16,32,64 AND 128. ┼ACH BIT CAN ONLY HAVE A 0 ("CLEAR") OR A 1 ("SET") IN THEM, AND IF ALL OF THE BITS ARE SET THEN THE TOTAL OF THEIR VALUE, THE VALUE OF THE BYTE, IS 255.
╘O FIND OUT WHICH NUMBER IS IN A GIVEN MEMORY LOCATION, FOR EXAMPLE IN 12345, TYPE, WITHOUT LINE NUMBER, ?PEEK(12345).
╚ERE IS, FOR EXAMPLE, A ┬┴╙╔├ PROGRAM THAT WILL PROVIDE FOR ANY GIVEN TOTAL (0 TO 255) THE CONTENT (0 OR 1) OF EACH BIT:
╔NDIVIDUAL BITS CAN BE INTERROGATED AFTER RUNNING THIS PROGRAM. ╞OR EXAMPLE TO FIND OUT WHETHER BIT 7 (128) IS SET (1) OR IS CLEAR (0) TYPE ?B7.
┴ SIMPLER WAY, WITHOUT USING THAT PROGRAM, IS TO USE INSTEAD THE ┬OOLEAN OPERATOR "AND". ╘YPE, FOR EXAMPLE, FOR LOCATION 12345 AND BIT 7 (128)
?(PEEK(12345)AND128)/128
╧R, FOR LOCATION 783 AND BIT 1 (2) TYPE
?(PEEK(783)AND2)/2
╘HE (VALUES) OF THE BITS, TO BE USED IN THE "AND" STATEMENTS, ARE: BIT 0 (1), 1 (2), 2 (4), 3 (8), 4 (16), 5 (32), 6 (64), AND 7 (128), WITH THE BIT VALUE OF THE BIT ALSO USED AT THE END OF THAT DIVISION.
╠OCATION 783 IS VERY IMPORTANT BECAUSE ITS BITS, CALLED "FLAGS", ARE USED NOT ONLY BY THE ┬┴╙╔├ LANGUAGE, BUT ALSO IN MACHINE LANGUAGE, WHERE IT IS CALLED ".╨" AS PART OF THE .┴, .╪, .┘ AND .╨ FAMILY (780-783). ┬IT 0 (1) IS CALLED THE CARRY FLAG, BIT 1 (2) IS THE ZERO FLAG, BIT 2 (4) IS THE INTERRUPT DISABLE FLAG, BIT 3 (8) IS THE DECIMAL FLAG, BIT 4 (16) IS THE BREAK FLAG, BIT 5 (32) IS NOT USED, BIT 6 (64) IS THE OVERFLOW FLAG, AND BIT 7 (128) IS THE NEGATIVE FLAG. ╠OADING THE ACCUMULATOR OR ANY OTHER MEMORY LOCATION WITH ZERO SETS THE ZERO FLAG; PUTTING INSTEAD A VALUE BETWEEN 128 AND 255 INTO IT SETS THE NEGATIVE FLAG.
╘O USE A PRINTER AT LEAST ONE "OPEN" STATEMENT MUST BE ENTERED; ╔ OFTEN USE
4010 CLOSE5:OPEN5,4,5:CLOSE7:OPEN7,4,7: RETURN
╘HE 4 IS THE DEVICE NUMBER (USUALLY 4 FOR PRINTERS), THE 2ND 5 OR 7 IS THE SECONDARY ADDRESS, TELLING THE ELECTRONIC BOX WITH ITS 8 SWITCHES (YOURS MAY BE DIFFERENT) ON IT, CALLED INTERFACE, THAT IS CONNECTED BETWEEN THE COMPUTER AND THE PRINTER HOW TO DO THINGS, AND THE FIRST 5 OR 7 IS THE FILE NUMBER, WHICH ╔ USUALLY MAKE EQUAL TO THE SECONDARY ADDRESS. ╔ USE 5 WHEN ╔ WANT THE INTERFACE WITHOUT LINE FEED TO PASS INTO THE PRINTER UNCHANGED WHAT COMES OUT OF THE COMPUTER (SUCH AS GIVING INSTRUCTIONS TO THE PRINTER), AND ╔ USE 7 WHEN ╔ WANT, WITH LINE FEEDS, THE INTERFACE TO TRANSLATE INTO THE ┴╙├╔╔ SYSTEM WHAT COMES OUT OF THE COMPUTER. ╞OR EXAMPLE USING 5, VALUE 65 IN MEMORY IS PRINTED OUT AS UPPER CASE ┴, WHILE, USING 7, THAT SAME MEMORY VALUE OF 65 IS PRINTED AS LOWER CASE A. ╚ERE IS A ┬┴╙╔├ PROGRAM TO SEE WHAT IS PRINTED:
10 CLOSE 5: OPEN 5,4,5: CLOSE7: OPEN7,4,7
20 F╧I=33 TO 255: P╥5,C╚(I);:N┼:P╥7
30 F╧I=33 TO 255: P╥7,C╚(I);:N┼:P╥7:END
╘O PRINT OUT THE CONTENTS OF MEMORY BETWEEN LIMITS 12345 AND 12355 ╔ WOULD USE
10 CLOSE7: OPEN7,4,7
20 FOR I=12345 TO 12355:P╥7,P┼(I);:N┼:P╥7:END
OR, TO PRINT OUT A GIVEN NUMBER OF ITEMS, STARTING WITH 22222, ╔ WOULD USE
10 CLOSE7: OPEN7,4,7
20 FOR I=22222 TO I+20: P╥7,P┼(I);:N┼:P╥7:END
╒SING ¡╝MACHINE LANGUAGE╜╛ IS MORE DIFFICULT, AND IT SHOULD MAINLY BE USED FOR TASKS THAT INCLUDE A LOT OF REPETITION, WHERE THE GREATER SPEED OF MACHINE LANGUAGE IS IMPORTANT. ╔ USE ┬┴╙╔├ OTHERWISE.
╘HERE ARE DIFFERENT OP-CODES FOR DIFFERENT USES OF, FOR EXAMPLE, LOADING THE CONTENTS OF A BYTE INTO THE ACCUMULATOR (╠─┴), WITH DIFFERENT SPEEDS IN TERMS OF COMPUTER CYCLES. ╘HE FASTEST (2 CYCLES) IS OP-CODE 169 WHICH HAS ONLY ONE OPERAND (THE NUMBER FOLLOWING THE OP-CODE). ╞OR EXAMPLE 169,123 PUTS THE NUMBER 123 INTO THE ACCUMULATOR (LOCATION 780). 3 CYCLES ARE NEEDED USING OP-CODE 165 WHICH ALSO HAS ONLY ONE OPERAND WHICH MUST BE BETWEEN 0 AND 255 (ZERO PAGE). ╞OR EXAMPLE, 165,123 PUTS THE CONTENT OF MEMORY LOCATION 123 INTO THE ACCUMULATOR. ╧P-CODE 173 REQUIRES 2 OPERANDS AND IT IS USED TO LOAD INTO THE ACCUMULATOR THE CONTENTS OF A MEMORY LOCATION THAT IS HIGHER THAN 255. ╔TS SPEED IS 4 CYCLES.
╞OR EXAMPLE FOR LOCATION 12345 DIVIDE 12345 BY 256, GIVING 48.222656. ─ISCARD THE DECIMAL PART TO GET 48 WHICH WE CALL ╚. ╘HEN SUBTRACT ╚ TIMES 256 FROM 12345 TO GET ╠, WHICH GIVES 57 FOR ╠. ├HECKING, (╚ TIMES 256) PLUS ╠ SHOULD ALWAYS GIVE THE ORIGINAL NUMBER. ┬ECAUSE THE LOCATION OF THE BYTE WE WANT, 12345, IS ABOVE 255 THE "ABSOLUTE" OP-CODE IS 173, REQUIRING 2 OPERANDS, ╠ AND ╚, AFTER IT. ╒SING ┬┴╙╔├ TO LOAD THIS AND RUN IT, AND NOTHING ELSE, ╔ WOULD USE, FOR THIS EXAMPLE,
10 FOR I=820 TO 1023: READ A:IF A>255 THEN SYS820: END
20 DATA 173,57,48, 96, 999
╘HIS SHOULD GIVE THE SAME RESULT AS, USING ONLY ┬┴╙╔├,
10 PRINT P┼(12345):REM ORIGINAL BYTE CONTENT
20 PRINT P┼(780):REM ACCUMULATOR (.┴) CONTENT
╒SING ONLY ┬┴╙╔├ THIS COULD HAVE BEEN DONE BY
10 A=P┼(12345)
20 P╧780,A
30 ?P┼(12345)
40 ?P┼(780):END
╧THER OP-CODES EXIST TO LOAD THE ACCUMULATOR (╠─┴) WITH SPEEDS 5 OR 6; THESE ARE INVOLVING .╪ OR .┘ AS ADDITIONS, OR USING INDIRECT MEANS, BY FIRST LOOKING AT THE GIVEN ADDRESS AND LOADING THE CONTENT OF ITS CONTENT INTO THE ACCUMULATOR .┴ WITH .╪ OR .┘ INVOLVED TOO AS ADDITIONS.
╘O CHECK ON SPEED IN TERMS OF "╩IFFIES" USE BYTES 160-162. ╘HERE ARE 60 ╩IFFIES PER SECOND, WITH THIS SOFTWARE CLOCK RESET TO ZERO AFTER 24 HOURS. ╙EE ┬┴╙╔├ RESERVED VARIABLES TI AND TI$.